package com.antler.smt.service.admin;

import com.antler.smt.entity.SupplierEntity;
import com.antler.smt.enums.ResultCodeEnum;
import com.antler.smt.request.admin.GetSupplierListReq;
import com.antler.smt.request.base.BasePageReq;
import com.antler.smt.response.admin.GetSupplierListResp;
import com.antler.smt.response.base.Result;
import com.github.pagehelper.Page;

/**
/**
 * 服务商接口
 *
 * @author zhangyi
 * @date 2018/3/26 14:40
 */
public interface SupplierService {

    /**
     * 获取服务商列表
     *
     * @param request 请求实体
     * @return 服务商列表实体
     */
    Result<Page<GetSupplierListResp>> getSupplierList(GetSupplierListReq request);

    /**
     *  获取服务商详情
     *
     * @param id
     * @return
     */
    Result<SupplierEntity> getSupplierInfo(Long id);


    /**
     *  获取服务商入驻审核状态列表（入驻审核状态 0未申请 1已申请未审核 2审核通过 3审核未通过）
     *
     * @param request
     * @return
     */
    Result<Page<GetSupplierListResp>> getSupplierSettledList(GetSupplierListReq request);

    /**
     *  更改入驻审核结果
     *
     * @param id
     * @param auditResult
     * @return
     */
    Result<ResultCodeEnum> updateSupplierSettled(Long id,Integer auditResult);

    /**
     *  优质加工厂审核
     *
     * @return
     */
    Result<ResultCodeEnum> excellentAudit(Long id,Integer auditResult);

    /**
     * 优质服务商待审核列表
     *
     * @param auditResult 审核状态
     * @param request 用于分页
     * @return
     */
    Result<Page<GetSupplierListResp>> getExcellentSupplierList(Integer auditResult,GetSupplierListReq request);


    /**
     *  获取入驻已审核列表
     *
     * @return
     */
    Result<Page<GetSupplierListResp>> selectEndSetted(BasePageReq basePageReq);

    /**
     *  获取优质已审核列表
     *
     * @return
     */
    Result<Page<GetSupplierListResp>> selectEndExcellentAudit(BasePageReq basePageReq);

    /**
     * 服务商信息修改
     *
     * @param supplierListReq
     * @return
     */
    Result<ResultCodeEnum> editSupplierInfo(Long supplierId ,GetSupplierListReq supplierListReq);

    /**
     * 冻结服务商账户
     *
     * @param supplierId
     * @param status
     * @return
     */
    Result<ResultCodeEnum> freezeSupplier(Long supplierId,Integer status);
}

